Non-linear receiver model for gate-level delay calculation

ABSTRACT

A characterized cell library for EDA tools includes receiver model data that provides two or more capacitance values for a given receiver modeling situation (signal type and operating conditions). The receiver model can then use different capacitance values to generate different portions of the model receiver signal, thereby enabling more accurate matching of actual receiver signal timing characteristics. For example, a two-capacitance receiver model can be generated by using the first capacitance value to match the delay characteristics of an actual receiver, and by using the second capacitance (in light of the use of the first capacitance) to match the slew characteristics of that actual receiver. Because typical EDA timing analyses focus mainly on delay and slew (and not the detailed profile of circuit signals), a two-capacitance receiver model can provide a high degree of accuracy without significantly increasing cell library size and computational complexity.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/866,981, entitled “NONLINEAR RECEIVER MODEL FOR GATE-LEVEL DELAYCALCULATION” filed Oct. 3, 2007 which is a divisional of U.S. patentapplication Ser. No. 10/977,243, entitled “NONLINEAR RECEIVER MODEL FORGATE-LEVEL DELAY CALCULATION” filed Oct. 29, 2004, now issued as U.S.Pat. No. 7,299,445.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention is in the field of electronic design automation (EDA), andmore particularly, is related to receiver models for that enableaccurate timing analyses.

2. Related Art

An electronic design automation (EDA) system is a computer softwaresystem used for designing integrated circuit (IC) devices. The EDAsystem typically receives one or more high level behavioral descriptionsof an IC device (e.g., in HDL languages like VHDL, Verilog, etc.) andtranslates (“synthesizes”) this high-level design language descriptioninto netlists of various levels of abstraction. A netlist describes theIC design and is composed of nodes (functional elements) and edges,e.g., connections between nodes. At a higher level of abstraction, ageneric netlist is typically produced based on technology independentprimitives.

The generic netlist can be translated into a lower leveltechnology-specific netlist based on a technology-specific(characterized) cell library that has gate-specific models for each cell(i.e., a functional element, such as an AND gate, an inverter, or amultiplexer). The models define performance parameters for the cells;e.g., parameters related to the operational behavior of the cells, suchas power consumption, delay, and noise. The netlist and cell library aretypically stored in computer readable media within the EDA system andare processed and verified using many well-known techniques.

FIG. 1 shows a simplified representation of an exemplary digital ASICdesign flow. At a high level, the process starts with the product idea(step E100) and is realized in an EDA software design process (stepE110). When the design is finalized, it can be taped-out (event E140).After tape out, the fabrication process (step E150) and packaging andassembly processes (step E160) occur resulting, ultimately, in finishedchips (result E170).

The EDA software design process (step E110) is actually composed of anumber of steps E112-E130, shown in linear fashion for simplicity. In anactual ASIC design process, the particular design might have to go backthrough steps until certain tests are passed. Similarly, in any actualdesign process, these steps may occur in different orders andcombinations. This description is therefore provided by way of contextand general explanation rather than as a specific, or recommended,design flow for a particular ASIC.

A brief description of the components steps of the EDA software designprocess (step E110) will now be provided. During system design (stepE112), the designers describe the functionality that they want toimplement and can perform what-if planning to refine functionality,check costs, etc. Hardware-software architecture partitioning can occurat this stage. Exemplary EDA software products from Synopsys, Inc. thatcan be used at this step include Model Architect, Saber, System Studio,and DesignWare® products.

During logic design and functional verification (step E114), the VHDL orVerilog code for modules in the system is written and the design ischecked for functional accuracy. More specifically, does the design aschecked to ensure that produces the correct outputs. Exemplary EDAsoftware products from Synopsys, Inc. that can be used at this stepinclude VCS, VERA, DesignWare®, Magellan, Formality, ESP and LEDAproducts.

During synthesis and design for test (step E116), the VHDL/Verilog istranslated to a netlist. The netlist can be optimized for the targettechnology. Additionally, the design and implementation of tests topermit checking of the finished chip occurs. Exemplary EDA softwareproducts from Synopsys, Inc. that can be used at this step includeDesign Compiler®, Physical Compiler, Test Compiler, Power Compiler, FPGACompiler, Tetramax, and DesignWare® products.

During design planning (step E118), an overall floorplan for the chip isconstructed and analyzed for timing and top-level routing. Exemplary EDAsoftware products from Synopsys, Inc. that can be used at this stepinclude Jupiter and Floorplan Compiler products.

During netlist verification (step E120), the netlist is checked forcompliance with timing constraints and for correspondence with theVHDL/Verilog source code. Exemplary EDA software products from Synopsys,Inc. that can be used at this step include VCS, VERA, Formality andPrimeTime products.

During physical implementation (step E122), placement (positioning ofcircuit elements) and routing (connection of the same) is performed.Exemplary EDA software products from Synopsys, Inc. that can be used atthis step include the Astro product.

During analysis and extraction (step E124), the circuit function isverified at a transistor level, this in turn permits what-if refinement.Exemplary EDA software products from Synopsys, Inc. that can be used atthis step include Star RC/XT, Raphael, and Aurora products.

During physical verification (step E126), various checking functions areperformed to ensure correctness for: manufacturing, electrical issues,lithographic issues, and circuitry. Exemplary EDA software products fromSynopsys, Inc. that can be used at this step include the Herculesproduct.

During resolution enhancement (step E128), geometric manipulations ofthe layout are performed to improve manufacturability of the design.Exemplary EDA software products from Synopsys, Inc. that can be used atthis step include the iN-Phase, Proteus, and AFGen products.

Finally, during mask data preparation (step E130), the “tape-out” datafor production of masks for lithographic use to produce finished chipsis performed. Exemplary EDA software products from Synopsys, Inc. thatcan be used at this step include the CATS(R) family of products.

As indicated in FIG. 1, timing analyses can be performed at variouspoints along the EDA process, such as during synthesis, design planning,netlist verification, and analysis (as indicated by the boldedchevrons). The accuracy of these timing analyses is critical to thequality of final IC produced using EDA systems. A timing analysis isperformed at the transistor level, and makes use of the performance dataincluded in the characterized cell library. To perform a timinganalysis, the IC design (or a portion of the IC) is modeled as a networkof drivers and receivers. Cells designated as drivers provide stimuli tothe network, and the resulting waveforms are received by the cellsdesignated as receivers.

For example, FIG. 2A shows a schematic diagram of a sampledriver-receiver network 200 that includes a driver 210 and a receiver230. An input pin 211 of driver 210 receives a driver input signal S_INDand generates a driver output signal S_OUTD at a driver output pin 212.This signal is transmitted across an interconnect element 220 and isreceived as a receiver input signal S_INR at a receiver input pin 231 ofreceiver 230 (depicted as an inverter for exemplary purposes). Receiver230 processes receiver input signal S_INR and generates a receiveroutput signal S_OUTR at a receiver output pin 232. Note that receiver230 can also function as a driver for downstream cells, as indicated byload 240 connected to receiver output pin 232.

Because signals do not propagate instantly through a real-world circuit(e.g., due to propagation delays and parasitics), signals S_IND, S_OUTD,S_INR, and S_OUTR will have differing slew and delay characteristics. Inthe context of a timing analysis, “slew” represents the time requiredfor a signal to transition between an upper threshold voltage and alower threshold voltage (or vice versa), while “delay” represents thetime required for the signal to transition from either the upper orlower rail (supply voltage) to a gate threshold voltage. Meanwhile, thegate threshold voltage typically represents the voltage at which thetransistor switches state (from off to on, or vice versa).

The concepts of slew and delay are depicted in FIG. 2B, which shows agraph of a sample signal S_SAMP that represents a general signalprovided to, or generated by, a cell within an IC design. Signal S_SAMPtransitions between a lower rail voltage RL and an upper rail voltageRU, which represent the operating (supply) voltages for the cell. Todefine the slew and delay characteristics of signal S_SAMP, an upperthreshold voltage THU, a lower threshold voltage THL, and a gatethreshold voltage THG are selected. Upper threshold voltage THU, lowerthreshold voltage THL, and gate threshold voltage THG are typicallyselected to be predetermined percentages of the difference between railvoltages RU and RL. For example, lower threshold THL and upper thresholdTHU could be selected to be 20% and 80%, respectively, of the differencebetween upper rail voltage RU and lower rail voltage RL. Likewise, gatethreshold voltage THG could be selected to be midway (i.e., 50% of thedifference) between upper rail voltage RU and lower rail voltage RL.

Once lower threshold voltage THL, gate threshold voltage THG, and upperthreshold voltage THV have been defined, delay and slew values can bedetermined for signal S_SAMP. For example, signal S_SAMP reaches gatethreshold voltage THG at a time T2. Therefore, the delay value forsignal S_SAMP is equal to the difference between times T2 and T0 (i.e.,T2−T0). Similarly, since signal S_SAMP reaches lower threshold voltageTHL and upper threshold voltage THU at times T1 and T3, respectively,the slew value for signal S_SAMP is the difference between times T3 andT1 (i.e., T3−T1). Delay and slew values can be determined in a similarmanner for a signal transitioning from upper rail voltage RU to lowerrail voltage RL.

In an EDA system, a characterized cell library is generated by fittingmathematical models to actual delay data (i.e., measured data orsimulated (SPICE) data). Typically, a CMOS cell operating as a receiveris modeled as a single capacitor. For example, FIG. 3A shows receivercell 230 of FIG. 2A replaced with a conventional receiver model 230-STthat includes a resistor R_ST and a capacitor C_ST serially coupledbetween receiver input pin 231 and ground. The value of capacitor C_STis selected such that a model receiver input signal S_INR-ST generatedby the RC circuit in response to driver output signal S_OUTD fits theactual (measured or simulated) receiver input signal S_INR. Typically, adifferent capacitance value is determined for rising signals, fallingsignals, “best case” (fastest) transitions, and “worst case” (slowest)transitions. Furthermore, since cell performance generally changes withoperating conditions such as temperature and voltage, a new set ofcapacitance values are often generated across a range of operatingconditions.

Thus, a receiver model entry in a conventional characterized celllibrary generally includes a set of capacitance values, with each singlecapacitance value being referenced by a signal type (rise, fall, bestcase, worst case) and set of operating conditions. For example, FIG. 3Bshows a characterized library cell entry 300 for a receiver model ofcell 230 (shown in FIG. 3A). Cell entry 300 includes a set ofcapacitance values C_ST referenced by signal type and operatingconditions. For example, for a rising signal generated under operatingconditions OP1, cell 230 is modeled (as a receiver) using a capacitancevalue C_ST(R1). Likewise, for a falling signal under the same operatingconditions, cell 230 is modeled using a capacitance value C_ST(F1),while a rising signal under a set of operating conditions OP2 leads tothe selection of a capacitance value C_ST(R2) to model cell 230.

Unfortunately, as device sizes continue to shrink, the behavior of asignal at a receiver can no longer be modeled by a single (static)capacitance value, as dynamic effects (e.g., the Miller Effect) begin toaffect the signal shape. For example, FIG. 3C shows an actual signalS_INR-A1 (indicated by the bold curve) measured at the input pin of areceiver cell instantiated using 0.12 μm technology. Also depicted aremodel signals S_INR-ST1, S_INR-ST2, and S_INR-ST3 (indicated by thedashed curves), each having been generated using the above-describedsingle-capacitance receiver model (with each of the signals beinggenerated using a different capacitance value).

Because the curvature of signal S_INR-A1 varies significantly over thecourse of the signal transition, none of model signals S_INR-ST1,S_INR-ST2, and S_INR-ST3 can accurately model both the delay and slewcharacteristics of actual signal S_INR-A1. For example, model signalS_INR-ST1 provides a relatively good match to the actual delay of actualsignal S_INR-A1. However, because model signal S_INR-ST1 reaches theupper threshold voltage THU much sooner than does actual signalS_INR-A1, the slew value generated by model signal S_INR-ST1 is muchlower than the actual slew value of signal S_INR-A1. Unfortunately,while the model capacitance can be adjusted to reduce the slew error,such as in model signals S_INR-ST2 and S_INR-ST3, any such adjustmentincreases the model delay error.

Thus, conventional cell receiver models can be inadequate for the timinganalysis of modern IC designs. Accordingly, it is desirable to provide acell receiver model that can accurately represent the delay and slewcharacteristics of a CMOS cell.

SUMMARY OF THE INVENTION

To improve receiver modeling accuracy without unduly increasing celllibrary size or analytical complexity, a multi-capacitance receivermodel can be used. For example, in one embodiment, the static capacitorused in conventional receiver models can be replaced by a two-stagenon-linear capacitor. The two-stage non-linear capacitor provides afirst capacitance value while the receiver model is generating a firstportion of a model receiver signal, and then switches to a secondcapacitance value when the model receiver signal reaches a predeterminedswitching voltage. In other embodiments, the non-linear capacitor canswitch between three or more capacitance values.

In one embodiment, a two-stage non-linear capacitor in a receiver modelcan include a switching voltage set to the gate threshold voltage of thecell being modeled. Then, the first capacitance value can be selectedsuch that the delay of the model receiver signal matches the delay ofthe actual receiver signal, and the second capacitance value can beselected such that the slew of the model receiver signal matches theslew of the actual receiver signal. Further accuracy can be achieved bymaking the first and/or the second capacitances a function of the loadcapacitance coupled to the output of the receiver and/or the input slewof the signal provided at the input of the receiver. For example, thefirst and/or the second capacitances could actually be tables ofcapacitance values indexed (referenced by) different receiver loadcapacitances and/or input slew values.

In another embodiment, a cell library entry for a receiver can begenerated by translating actual receiver timing data into a receivermodel that incorporates a non-linear capacitor receiver model. Forexample, the non-linear capacitor can be defined as a two-stagecapacitor. A first value of the two-stage capacitor can be selected suchthat the receiver model exhibits the same delay as the actual receivercell, while a second value of the two-stage capacitor can be selectedsuch that the receiver model exhibits the same slew as the actualreceiver cell.

The matching of the model receiver signal portions to the actualreceiver signal portions can be performed using receiver input signalsor receiver output signals. Furthermore, instead of matching timingcharacteristics such as delay and slew, the matching operation cancompare the profiles of the model receiver signal portions and thecorresponding actual receiver signal portions. In another embodiment,greater accuracy (i.e., a closer fit to the actual signal profile) canbe achieved by increasing the number of different capacitance valuesassigned to the non-linear capacitor during generation of the modelreceiver signal.

In another embodiment, a timing analysis can be performed using areceiver model incorporating a non-linear capacitor. The non-linearcapacitor is initially assigned a first capacitance value, and a driveroutput signal is applied to the receiver model to cause the receivermodel to generate a receiver signal. When the receiver signal reaches afirst signal voltage, the non-linear capacitor switches to a secondcapacitance value. Generation of the receiver signal continues in thismanner (i.e., switching capacitance values at predetermined signalvoltages) until the receiver signal reaches a maximum voltage (generallya supply voltage). The receiver signal can then be applied to downstreamcells, or signal characteristics (such as delay and slew) can beextracted from the receiver signal as part of the timing analysis.

The invention will be more fully understood in view of the followingdescription and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a process flow diagram for a general EDA design flow.

FIG. 2A is a schematic diagram of a sample driver-receiver network.

FIG. 2B is a graph of a sample signal within a load-receiver network.

FIG. 3A is a schematic diagram of a conventional receiver model.

FIG. 3B is a sample cell entry for a conventional receiver model in acell library.

FIG. 3C is a graph of conventional model receiver signals compared to anactual receiver signal.

FIG. 4A is a schematic diagram of a driver-receiver network thatincorporates a multi-capacitance receiver model.

FIG. 4B is a graph of a multi-capacitance model receiver signal comparedto an actual receiver signal.

FIG. 5A is a flow diagram of a multi-capacitance receiver modelgeneration process.

FIGS. 5B-5E are sample cell libraries that include multi-capacitancereceiver models.

FIG. 6 is a diagram of a computing system that includes logic forgenerating a multi-capacitance receiver model.

FIG. 7 is a flow diagram of a process for performing a timing analysisusing a multi-capacitance receiver model.

DETAILED DESCRIPTION

Because of the various dynamic effects that become more significant asdevice geometries are reduced in size, conventional single-capacitancereceiver models used in EDA systems can no longer provide accuratetiming simulations. FIG. 4A shows a multi-capacitance receiver modelthat overcomes this deficiency.

FIG. 4A models driver-receiver network 200 shown in FIG. 2A by replacingreceiver 230 with a cell receiver model 430-NL that includes a resistorR_NL and a non-linear capacitor C_NL serially coupled between receiverinput pin 231 and ground. Like cell receiver model 230-ST shown in FIG.3A, cell receiver model 430-NL generates a model receiver input signalS_INR-NL in response to driver output signal S_OUTD provided by drivercell 210.

However, unlike static capacitor C_ST in cell receiver model 230-ST,non-linear capacitor C_NL in cell receiver model 430-NL does not providea single, static capacitance over an entire signal transition. Rather,non-linear capacitor C_NL switches between different capacitance valuesat predetermined signal voltages as receiver model 430-NL is generatingmodel receiver input signal S_INR-NL (or model receiver output signalS_OUTR-NL). The capacitance values for non-linear capacitor C_NL areselected such that the signals generated by cell receiver model 430-NLmatch the timing characteristics of the actual signals (S_INR and/orS_OUTR) generated within the driver-receiver network 200 (shown in FIG.2A).

For example, in one embodiment, non-linear capacitor C_NL provides twodifferent capacitance values, switching from the first capacitance valueto the second capacitance value when the model receiver input signalreaches the gate threshold voltage of the cell being modeled. The firstcapacitance value can be selected to cause the delay of model receiverinput signal S_INR-NL to match the delay of actual receiver input signalS_INR, while the second capacitance value can be selected to cause theslew of signal S_INR-NL to match the slew of signal S_INR. Note that forthis and other types of non-linear capacitance-based models, differentsets of first capacitance and second capacitance values (and gatethreshold voltages) could be generated for different signal types (e.g.,rising, falling, best case, and worst case signals) and for differentoperating conditions (e.g., different temperatures and operatingvoltages).

Note further that while the non-linear capacitance-based model isdescribed with respect to a single driver and single cell receiver modelfor clarity, in various other embodiments, any number of additionaldrivers 210(1) and any number of additional cell receiver models430-NL(1) can be coupled to interconnect 220. Each additional cellreceiver models 430-NL(1) could then include a non-linear capacitor asdescribed with respect to cell receiver model 430-NL.

FIG. 4B shows an example of this “two-stage capacitance” approach usedto fit a receiver model to actual data. The graph of FIG. 4B includessame actual receiver input signal S_INR shown in FIG. 3C (i.e., 0.12 μmtechnology cell acting as a receiver). As described above with respectto FIG. 3C, signal S_INR exhibits the type of curvature variations thatcan become more prominent as device sizes are reduced in size.

However, rather than modeling signal S_INR using a conventional singlecapacitance model, in FIG. 4B actual signal S_INR is modeled by atwo-capacitance receiver model that generates a model receiver inputsignal S_INR-NL. The portion of signal S_INR-NL from 0V to gatethreshold voltage THG is generated using a first capacitance C_NL1,while the portion of signal S_INR-NL from gate threshold voltage THG toupper rail 1.08V is generated using a second capacitance C_NL2.Capacitances C_NL1 and C_NL2 are selected such that the delay and slewcharacteristics of model receiver input signal S_INR-NL match those ofactual receiver input signal S_INR (to within a desired tolerance).

Note that switching from capacitance C_NL1 to C_NL2 when the modelreceiver signal reaches the gate threshold voltage essentially coversswitching from capacitance C_NL1 to C_NL2 exactly at, just before, orjust after the model receiver signal reaches gate threshold voltage,since the timing model accuracy will generally not be affectedsignificantly by any of these situations. Note also that while the graphof FIG. 4B depicts the capacitance switch as being performed at the gatethreshold voltage of the cell being modeled (i.e., either the actualgate threshold voltage of the cell (from measurements or simulations) ora predetermined gate threshold voltage such as 50% of the rail-to-railvoltage), according to other embodiments, the switch can be performed atany selected receiver signal voltage.

Note further that even though the specific profile of model receiverinput signal S_INR-NL does not exactly match the profile of actualreceiver input signal S_INR, the timing characteristics of interest(i.e., the delay and slew) of model receiver input signal S_INR-NL aresubstantially the same as those of actual receiver input signal S_INR.Therefore, the dual-capacitance model (capacitance values C_NL1 andC_NL2) can be used to provide an accurate cell receiver model.

For exemplary purposes, capacitance values C_NL1 and C_NL2 are describedas being derived by fitting the model receiver input signal S_INR-NL tothe actual receiver input signal S_INR. In another embodiment, firstcapacitance C_NL1 could be selected to cause the delay of model receiveroutput signal S_OUTR-NL to match the delay of actual receiver outputsignal S_OUTR, while second capacitance C_NL2 could be selected to causethe slew of model receiver output signal S_OUTR-NL to match the slew ofactual receiver output signal S_OUTR (shown in FIG. 4A).

Because the goal of a model is typically to provide an accurate output,selecting first and second capacitances C_NL1 and C_NL2 based on a fitto the receiver output signal can often provide the most accuratemodeling results. However, since such an approach will generally dependon the load connected to receiver output pin 232 (e.g., capacitanceC_OUT in load model 440-ST), a different set of capacitance values fornon-linear capacitor C_NL could be required for each different loadingconfiguration (each different value of a load capacitance C_OUT atreceiver output pin 232 (shown in FIG. 4A)). Because a given receivermay be coupled to a wide variety of different loads in an IC design,this output-based receiver modeling can sometimes result in increasedlibrary file size.

In another embodiment, the first capacitance C_NL1 and/or the secondcapacitance C_NL2 can themselves be sets of capacitances that are basedon the load capacitance C_OUT at receiver output pin 232 and/or theinput slew at receiver input pin 231. This allows cell receiver model430-NL to account for any coupling that occurs between receiver inputpin 231 and receiver output pin 232 once the cell “turns on”. Thus, forexample, the first capacitance C_NL1 and/or the second capacitance C_NL2could be represented by tables of capacitance values indexed by inputslew and/or output capacitance. Exemplary capacitance tables for firstcapacitance C_NL1 and second capacitance C_NL2 are provided below astables 1 and 2, respectively.

TABLE 1 First Capacitance Values C_OUT1 C_OUT2 C_OUT3 C_OUT4 C_OUT5IN_SLEW1 C_NL1-a1 C_NL1-b1 C_NL1-c1 C_NL1-d1 C_NL1-e1 IN_SLEW2 C_NL1-a2C_NL1-b2 C_NL1-c2 C_NL1-d2 C_NL1-e2

TABLE 2 Second Capacitance Values C_OUT1 C_OUT2 C_OUT3 C_OUT4 C_OUT5IN_SLEW1 C_NL2-a1 C_NL2-b1 C_NL2-c1 C_NL2-d1 C_NL2-e1 IN_SLEW2 C_NL2-a2C_NL2-b2 C_NL2-c2 C_NL2-d2 C_NL2-e2The first capacitance values C_NL1 and second capacitance values C_NL2in tables 1 and 2, respectively, are indexed by input slew valuesIN_SLEW1 and IN_SLEW2, and output capacitances C_OUT1 through C_OUT5.Note that just as with the above-described two-value non-linearcapacitance models, different sets (tables) of capacitance values andswitching voltages could be determined for different signaltype-operating condition combinations.

FIG. 5A shows a flow diagram for an exemplary process for generating atwo-stage capacitance receiver model (as described above with respect toFIGS. 4A and 4B). The receiver model can be defined in an optional“DEFINE RECEIVER MODEL” step N500. Specifically, the characteristics ofthe non-linear capacitor (e.g., capacitor C_NL in FIG. 4B) in thereceiver model can be defined (e.g., switching voltage(s), static orload-dependent capacitance values).

In a “DEFINE OPERATING PARAMETERS” step N510, values for the relevantoperating parameters are defined. For example, an output (load)capacitance for receiver can be specified. Also, a current input signalfor the receiver is determined. For example, the receiver cell (e.g.,receiver 230 in FIG. 2A) is provided with a voltage signal (e.g., driveroutput signal S_OUTD) having a predetermined slew, and the current flowinto the receiver cell is determined (via testing or simulation). Thiscurrent input signal can then be used for model generation purposes.Alternatively, the current input signal for the receiver can be derivedby applying the driver output current signal to the receiver cell (whereonly a portion of the driver output current may flow into the receivercell as the current input signal).

In a “SELECT FIRST CAPACITANCE VALUE(S)” step N520, a test firstcapacitance value (e.g., capacitance C_NL1 in FIG. 4B) is selected forthe receiver model. Then, in a “MODEL SIGNAL COMPARISON” step N530, thereceiver model performance is evaluated using the output capacitancevalue and the current input signal determined in step N510.

As noted above with respect to FIGS. 4A and 4B, the comparison performedin step N530 can be between the receiver model input voltage signal andthe actual receiver input voltage signal, or between the receiver modeloutput voltage signal and the actual receiver output voltage signal. Ineither case, a target fit between the receiver model (input/output)signal and the actual receiver (input/output) signal is assessed in a“FIT?” step N535. In one embodiment, the target fit could be a matchbetween the model delay value and the actual delay value (generally amatch to within 5% of the actual delay value will provide sufficientaccuracy for most timing analyses). In another embodiment, the targetfit could be a match between the profile of the portion of the modelreceiver signal generated using the first capacitance value and theprofile of the corresponding portion of the actual receiver signal.Various other fit definitions can be used in other embodiments. In anycase, if the target fit is achieved, the first capacitance value isfinalized in a “FINALIZE FIRST CAPACITANCE VALUE(S)” step N540.Otherwise, the process iterates back to step N510 where a new firstcapacitance value is selected.

Once the first capacitance value is determined, a test secondcapacitance value (e.g., capacitance C_NL2 in FIG. 4B) is selected in a“SELECT SECOND CAPACITANCE VALUE(S)” step N550. Once again, in a “MODELSIGNAL COMPARISON” step N560, the receiver model performance with thetest second capacitance value is evaluated using the output capacitancevalue and the current input signal determined in step N510.

As described with respect to steps N530 and N535, a target fit betweenthe receiver model signal and the actual receiver signal is evaluated ina “FIT?” step N565. In this case, the target fit could be a matchbetween the profile of the receiver model signal generated using thesecond capacitance value and the profile of the corresponding portion ofthe actual receiver signal. Alternatively, the target fit could be amatch between the model slew and the actual slew (as with the delaymodeling described above, a match to within 5% of the actual slew valuewill generally provide sufficient accuracy for most timing analyses).

Note that the slew performance of a two-capacitance receiver modeldepends on both the value of the first capacitance and the value of thesecond capacitance. This slew-dependence on both capacitances is due tothe fact that delay is measured between a rail voltage and a switchingvoltage (as described with respect to FIG. 2B), whereas slew is measuredbetween a lower threshold voltage and an upper threshold voltage.Therefore, the first capacitance controls the portion of the slewbetween the lower threshold voltage and the switching voltage (orbetween the upper threshold voltage and the switching voltage for afalling signal).

Thus, the model slew in the comparison of step N570 can be generated byadding the time required for the model signal to transition from thelower threshold voltage to the switching voltage using the firstcapacitance value, and the time required for the model signal totransition from the switching voltage to the upper threshold voltageusing the test second capacitance value. The resulting model slew (foreither the receiver input signal or the receiver output signal) can thenbe compared with the actual receiver slew (for the input signal oroutput signal, respectively).

If the target fit is detected in step N575, then the second capacitancevalue is finalized in a “FINALIZE SECOND CAPACITANCE VALUE(S)” stepN570. Otherwise, the process iterates back to step N550, where a newtest second capacitance value is selected. As part of this finalization,both the first and second capacitance values can be associated with thecell in a cell library (described in greater detail below with respectto FIG. 53).

Note that once a particular first capacitance/second capacitance set ofvalues is finalized in step N570, the process can loop back to step N510(indicated by the dotted line). Then, new input slew and/or outputcapacitance values can be specified for the generation of additionalfirst capacitance/second capacitance sets. Note further that while theflow diagram in FIG. 5A provides a two-stage model generation processfor exemplary purposes, the process can be readily extended for anynumber of stages (i.e., any number of different capacitance values fornon-linear capacitor C_NL in FIG. 4B).

FIG. 5B shows an embodiment of a characterized cell library 500 thatincorporates a non-linear capacitance receiver model, such as describedwith respect to FIG. 4A. A cell entry 510 in library 500 includes a cellidentifier 511 and multiple sets of model definition values. Each set ofmodel definition values includes first capacitance C_NL1, a secondcapacitance C_NL2, and a switching voltage V_SW. As described above withrespect to FIGS. 4A and 4B, first capacitance C_NL1 can be used as thereceiver model until the receiver input signal reaches switching voltageV_SW, at which point second capacitance C_NL2 (which can comprise asingle (static) capacitance value or table of capacitances) is used forthe receiver model.

Each set of model values is referenced by a particular combination ofoperating conditions (OP1-OP3) and signal types (RISE, FALL, BEST CASE,and WORST CASE). For example, for a rising receiver input signal underoperating conditions OP1, cell 230 is modeled as a receiver by a firstcapacitance C_NL1(R1), a second capacitance C_NL2(R1), and a switchingvoltage V_SW(R1). Similarly, for a falling receiver input signal underoperating conditions OP2, cell 230 is modeled as a receiver by a firstcapacitance C_NL1(F2), a second capacitance C_NL2(F2), and a switchingvoltage V_SW(F2). Each set of model values could be generated by theprocess described with respect to FIG. 5A.

Note that while four different signal types and three differentoperating conditions are shown for exemplary purposes, a cell entry fora multi-capacitance receiver model can include any number of signaltypes and any number of operating conditions. Note further that the sameswitching voltage can be applied to all receiver models in a library tosimplify library generation and usage. The use of a standard switchingvoltage (e.g., midway between the upper and lower power rail for allreceiver models) can also reduce library size, since each set of modeldefinition values would then only include two capacitance values, asshown in FIG. 5C. A cell entry 510-C on a library 500-C is substantiallysimilar to cell entry 510 shown in FIG. 5B, except that each set ofmodel definition values only includes a first capacitance value C_NL1and a second capacitance value C_NL2. The switching voltage isassociated with cell identifier 511 (or even library 500-C) as a whole,and therefore need not be included within individual sets of modeldefinition values.

Note also that as described above with respect to FIG. 4B, secondcapacitance C_NL2 can itself comprise multiple capacitance values thatare based on the load capacitance applied to the receiver. For example,FIG. 5D shows a cell library 500-D that includes a cell entry 510-D.Cell entry 510-D is substantially similar to cell entry 510-C shown inFIG. 5C, except that each first capacitance entry C_NL1 and each secondcapacitance value C_NL2 is now a function of the receiver loadcapacitance and/or input slew. For example, the set of model definitionvalues referenced by a rising signal and operating conditions OP1includes a second capacitance C_NL2 (R1)[1:N], indicating that secondcapacitance C_NL2(R1)[1:N] can take any of N different values, with eachof the capacitance values being indexed by a particular combination ofload capacitance and/or input slew applied to cell 230. In oneembodiment, first capacitance values C_NL1 and second capacitance valuesC_NL2 can be represented as tables of capacitance values, such as tables1 and 2, respectively.

Note further that while only two different capacitances are shown foreach set of model definition values, according to other embodiments,each set of model definition values can include any number ofcapacitance values. For example, multiple capacitance values could beselected to generate a model receiver signal that closely matches theactual receiver signal (rather than simply matching the delay and slewcharacteristics of the actual receiver signal). For example, the actualreceiver signal could be divided into segments, and a differentcapacitance value could be selected for each segment.

FIG. 5E shows an exemplary embodiment of a characterized cell library500-E that incorporates a non-linear capacitance receiver model based onmore than two capacitance values. Each set of model definition values ina cell entry 510-E in library 500-E includes first capacitance C_NL1, asecond capacitance C_NL2, a third capacitance C_NL3, a first switchingvoltage V_SW1, and a second switching voltage V_SW. First capacitanceC_NL1 can be used as the receiver model until the receiver input signalreaches first switching voltage V_SW1, at which point the receiver modelswitches to second capacitance C_NL2. Modeling is performed using secondcapacitance C_NL2 until the receiver input signal reaches secondswitching voltage V_SW2, at which point the receiver model switches tothird capacitance C_NL3 to generate the remainder of the receiversignal.

FIG. 6 shows a block diagram of a computer system 600 that includes alibrary generator 620 for translating an uncharacterized cell library610 (which includes actual receiver signal data) into a characterizedcell library 660. The embodiment of library generator 620 shown in FIG.6 includes a first capacitance generator for generating a firstcapacitance for a two-capacitance receiver model (e.g., steps N510-N540in FIG. 5A), a second capacitance generator for generating a secondcapacitance (or set of capacitances) for the two-capacitance receivermodel (steps N550-N570 in FIG. 5A), and a model definition compiler 650for compiling model definition data (one or more sets generated bygenerators 630 and 640) into a characterized cell library 660.Characterized cell library 660 can be written to some form ofcomputer-readable medium, such as memory within computer system 600, aremovable storage medium (e.g., CDROM or DVD), or a network storagelocation.

FIG. 7 shows a flow diagram for an embodiment of an analysis process(e.g., synthesis or static timing analysis) using a characterized celllibrary that includes a two-capacitance receiver model. In a “READ FIRSTCAPACITANCE VALUE” step N710, a first capacitance value (e.g., C_NL1described with respect to FIG. 5B) is read from the cell library. In anoptional “READ SWITCHING VOLTAGE” step N720, a switching voltage (e.g.,V_SW described with respect to FIG. 5B) is also read from the celllibrary. Note that if a general switching voltage has been predefined(e.g., as in cell entry 510-C in FIG. 5C), step N720 can be skipped.

Then, a first portion of the model receiver signal (either the inputsignal or the output signal) is generated in a “GENERATE FIRST RECEIVERSIGNAL PORTION” step N730. A second capacitance value (e.g., C_NL2 fromFIG. 5B) is then read from the cell library in a “READ SECONDCAPACITANCE VALUE(S)” step N740. Note that if the second capacitance isa function of the receiver load capacitance (e.g., as described withrespect to FIG. 5D), the load capacitance coupled to the receiver can beread in an optional “READ RECEIVER LOAD CAPACITANCE” step N750.

The remainder of the model receiver signal is generated in a “GENERATESECOND RECEIVER SIGNAL PORTION” step N760. Then, from the completedmodel receiver signal, the model delay and slew values can bedetermined, in a “DELAY/SLEW DETERMINATION” step N770.

The various embodiments of the structures and methods of this inventionthat are described above are illustrative only of the principles of thisinvention and are not intended to limit the scope of the invention tothe particular embodiments described. Thus, the invention is limitedonly by the following claims and their equivalents.

1. A method of creating a cell library comprising: using a computer toperform the following: providing a first cell identifier, the first cellidentifier corresponding to a first cell, the first cell being afunctional element; providing a first set of model definition data for areceiver model, the first set of model definition data being associatedwith the first cell identifier, the first set of model definition datacomprising: a first value for a first capacitance, the receiver modelbeing configured to use the first capacitance to generate a firstportion of a model receiver signal; and a first value for a secondcapacitance, the receiver model being configured to use the secondcapacitance to generate a second portion of the model receiver signal;generating a first cell entry including the first cell identifier andthe first set of model definition data; and organizing cell entries,including the first cell entry, to create the cell library.
 2. Themethod of claim 1, wherein the first set of model definition datafurther comprises a switching voltage, the receiver model beingconfigured to switch from the first capacitance to the secondcapacitance when the model receiver signal reaches the switchingvoltage.
 3. The method of claim 1, wherein the first set of modeldefinition data further comprises a first value for a third capacitance,the receiver model being configured to use the third capacitance togenerate a third portion of the model receiver signal.
 4. The method ofclaim 3, wherein the first set of model definition data furthercomprises a first switching voltage and a second switching voltage, thereceiver model being configured to switch from the first capacitance tothe second capacitance when the model receiver signal reaches the firstswitching voltage, and switch from the second capacitance to the thirdcapacitance when the model receiver signal reaches the second switchingvoltage.
 5. The method of claim 1, wherein the first set of modeldefinition data further comprises a second value for the secondcapacitance, the first value for the second capacitance being associatedwith a first load capacitance for the receiver model, and the secondvalue for the second capacitance being associated with a second loadcapacitance for the receiver model.
 6. The method of claim 1, whereinthe first set of model definition data is referenced by a first signaltype and a first set of operating conditions, the method furthercomprising providing a second set of model definition data for thereceiver model, the second set of model definition data being associatedwith the first cell identifier, the second set of model definition databeing referenced by the first signal type and a second set of operatingconditions, the second set of model definition data comprising: a secondvalue for the first capacitance; and a second value for the secondcapacitance.
 7. The method of claim 6, further comprising providing aswitching voltage, the switching voltage being associated with the firstcell identifier, the receiver model being configured to switch from thefirst capacitance to the second capacitance when the model receiversignal reaches the switching voltage.
 8. The method of claim 7, whereinthe switching voltage comprises a gate threshold voltage of the firstcell.
 9. The method of claim 7, wherein the first cell is configured tooperate between a lower supply voltage and an upper supply voltage, andwherein the switching voltage is substantially midway between the lowersupply voltage and the upper supply voltage.
 10. A method of creating acell library comprising: using a computer to perform the following:providing a first cell identifier, the first cell identifiercorresponding to a first cell, the first cell being a functionalelement; providing a set of model definition data for a receiver model,the set of model definition data being associated with the first cellidentifier, the set of model definition data comprising: a firstcapacitance value for a non-linear capacitor in the receiver model, thefirst capacitance value being associated with a delay of the first cell;and a second capacitance value for the non-linear capacitor in thereceiver model, the second capacitance value being associated with aslew of the first cell; generating a first cell entry including thefirst cell identifier and the set of model definition data; andorganizing cell entries, including the first cell entry, to create thecell library.
 11. The method of claim 10, wherein the set of modeldefinition data further comprises a switching voltage, the receivermodel being configured to switch the non-linear capacitor from the firstcapacitance value to the second capacitance value when a receiver signalgenerated by the receiver model reaches the switching voltage.
 12. Themethod of claim 10, wherein the second capacitance value is associatedwith a first load capacitance for the receiver model, and wherein theset of model definition data further comprises a third capacitance valuefor the non-linear capacitor in the receiver model, the thirdcapacitance value being associated with the slew of the first cell and asecond load capacitance for the receiver model.